<template>
  <nav class="bg-primary justify-content-between mb-4 px-4">
    <div class="w-75 mx-auto navbar">
      <router-link to="/"
                   class="navbar-brand"
                   style="color:aliceblue">者也专栏</router-link>
      <!-- 未登录 -->
      <ul v-if="!user.isLogin"
          class="list-inline mb-0">
        <li class="list-inline-item">
          <router-link to="/login"
                       class="btn btn-outline-light my-2">登陆</router-link>
        </li>
        <li class="list-inline-item">
          <router-link to="/signup"
                       class="btn btn-outline-light my-2">注册</router-link>
        </li>
      </ul>

      <!-- 已登录 -->
      <ul v-else
          class="list-inline mb-0">
        <li class="list-inline-item">
          <dropdown :title="`你好 ! ${user.nickName}`">
            <dropdown-item>
              <router-link to="/create"
                           class="dropdown-item">新建文章
              </router-link>
            </dropdown-item>
            <dropdown-item>
              <router-link :to="`/column/${user.column}`"
                           class="dropdown-item">我的专栏</router-link>
            </dropdown-item>
            <dropdown-item>
              <router-link to="/edit"
                           class="dropdown-item">编辑资料</router-link>
            </dropdown-item>
            <dropdown-item><a href="#"
                 class="dropdown-item"
                 @click.prevent="clearToken">退出登录</a>
            </dropdown-item>
          </dropdown>
        </li>
      </ul>
    </div>
  </nav>
</template>

<script lang="ts">
import { defineComponent, PropType } from 'vue'
import store, { UserProps } from '@/store'
import Dropdown from './Dropdown.vue'
import DropdownItem from './DropdownItem.vue'
import router from '@/router'
import createMessage from './createMessage'


export default defineComponent({
  name: 'GlobalHeader',
  components: {
    Dropdown,
    DropdownItem
  },
  props: {
    user: {
      type: Object as PropType<UserProps>,
      required: true
    }
  },
  setup() {
    const clearToken = () => {
      store.commit('logout')
      createMessage('退出成功!马上跳转到首页~', 'success', 1000)
      setTimeout(() => {
        router.push('/')
      }, 500);
    }
    return {
      clearToken
    }
  }
})
</script>
